--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+ <data>
+ <record id="product_standard_member" model="product.product">
+ <field name="name">Standard member</field>
+ <field name="list_price">25.00</field>
+ <field name="standard_price">0.00</field>
+ <field name="uom_id" ref="product.product_uom_unit"/>
+ <field name="uom_po_id" ref="product.product_uom_unit"/>
+ <field name="type">service</field>
+ <field name="categ_id" ref="bikecoop.product_category_other"/>
+ <field name="supply_method">produce</field>
+ <field name="membership">True</field>
+ <field name="membership_date_from" eval="time.strftime('%Y-01-01')"/>
+ <field name="membership_date_to" eval="time.strftime('%Y-12-31')"/>
+ <field name="property_account_income" ref="l10n_fr.pcg_758"/>
+ </record>
+ <record id="product_reduce_member" model="product.product">
+ <field name="name">Reduce member</field>
+ <field name="list_price">15.00</field>
+ <field name="standard_price">0.00</field>
+ <field name="uom_id" ref="product.product_uom_unit"/>
+ <field name="uom_po_id" ref="product.product_uom_unit"/>
+ <field name="type">service</field>
+ <field name="categ_id" ref="bikecoop.product_category_other"/>
+ <field name="supply_method">produce</field>
+ <field name="membership">True</field>
+ <field name="membership_date_from" eval="time.strftime('%Y-01-01')"/>
+ <field name="membership_date_to" eval="time.strftime('%Y-12-31')"/>
+ </record>
+ <record id="product_group_membership" model="product.product">
+ <field name="name">Group membership</field>
+ <field name="list_price">45.00</field>
+ <field name="standard_price">0.00</field>
+ <field name="uom_id" ref="product.product_uom_unit"/>
+ <field name="uom_po_id" ref="product.product_uom_unit"/>
+ <field name="type">service</field>
+ <field name="categ_id" ref="bikecoop.product_category_other"/>
+ <field name="supply_method">produce</field>
+ <field name="membership">True</field>
+ <field name="membership_date_from" eval="time.strftime('%Y-01-01')"/>
+ <field name="membership_date_to" eval="time.strftime('%Y-12-31')"/>
+ </record>
+ </data>
+
+ <data noupdate="1">
+ <!-- Join Memberships -->
+ <function model="res.partner" name="create_membership_invoice" eval="(ref('bikecoop.res_partner_francois'), ref('product_standard_member'), {'amount':25})"/>
+ <function model="res.partner" name="create_membership_invoice" eval="(ref('bikecoop.res_partner_matt'), ref('product_group_membership'), {'amount':45})"/>
+ </data>
+</openerp>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+ <data>
+ <record id="view_bikecoop_members_tree" model="ir.ui.view">
+ <field name="name">res.partner.tree</field>
+ <field name="model">res.partner</field>
+ <field name="type">tree</field>
+ <field name="inherit_id" ref="bikecoop.view_bikecoop_members_tree"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='name']" position="after">
+ <field name="membership_state"/>
+ <field name="membership_start"/>
+ <field name="membership_stop"/>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="view_bikecoop_members_form" model="ir.ui.view">
+ <field name="name">res.partner.form</field>
+ <field name="model">res.partner</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="bikecoop.view_bikecoop_members_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='name']" position="after">
+ <newline/>
+ <field name="member_ident" colspan="2"/>
+ <field name="membership_state" colspan="2"/>
+ <newline/>
+ <field name="membership_start" colspan="2"/>
+ <field name="membership_stop" colspan="2"/>
+ <separator string="Associate members" colspan="4"/>
+ <field name="associate_members" nolabel="1" colspan="4"/>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="view_bikecoop_members_search" model="ir.ui.view">
+ <field name="name">res.partner.search</field>
+ <field name="model">res.partner</field>
+ <field name="type">search</field>
+ <field name="priority" eval="8"/>
+ <field name="arch" type="xml">
+ <search string="Bikecoop members">
+ <field name="name" select="True"/>
+ <filter string="All bikecoop members" name="all_bikecoop_members" domain="[('membership_state','in', ['invoiced','paid','free'])]"/>
+ </search>
+ </field>
+ </record>
+ </data>
+</openerp>